ROS2前置基础教程 |
您所在的位置:网站首页 › ros2 python3 › ROS2前置基础教程 |
本系列教程作者:小鱼 公众号:鱼香ROS QQ交流群:139707339 教学视频地址:小鱼的B站 完整文档地址:鱼香ROS官网 版权声明:如非允许禁止转载与商业用途。 写在前面 当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号获取教程配套机器人开发平台:两驱版| 四驱版为方便交流,搭建了机器人技术问答社区:地址 fishros.org.cn 1.编写ROS2的Python节点在d2lros2/d2lros2/chapt2/basic新建second_ros2_node.py,输入下面的内容 # 导入rclpy库,如果Vscode显示红色的波浪线也没关系 # 我们只是把VsCode当记事本而已,谁会在意记事本对代码的看法呢,不是吗? import rclpy from rclpy.node import Node # 调用rclcpp的初始化函数 rclpy.init() # 调用rclcpp的循环运行我们创建的second_node节点 rclpy.spin(Node("second_node")) 2.运行Python节点打开终端,输入指令 ls python3 second_ros2_node.py打开新的终端,输入 ros2 node list完美,四行代码写了个ROS2的Python节点。 那么问题来了,我们import rclpy,rclpy到底在哪里?python是如何找到的? 3.Python包查找流程Python3运行import rclpy时候如何找到它的呢?答案是通过环境变量PYTHONPATH Ctrl+C打断节点运行,接着输入下面指令 echo $PYTHONPATH结果 /opt/ros/humble/lib/python3.10/site-packages:/opt/ros/humble/local/lib/python3.10/dist-packages你会发现里面有关于humble的python路径,在上面两个目录下找一下rclpy,看看能不能找到rclpy 查找第一个路径 ls -l /opt/ros/humble/lib/python3.10/site-packages | grep rclpy没找到,第二个 ls -l /opt/ros/humble/local/lib/python3.10/dist-packages/ | grep rclpy找到了 drwxr-xr-x 1 root root 4096 Jun 3 04:45 rclpy drwxr-xr-x 2 root root 4096 May 23 22:23 rclpy-3.3.4-py3.10.egg-info 4.unset实验使用unset指令可以将环境变量删除掉,尝试删除掉PYTHONPATH之后再运行代码,看看是否还可以导入rclpy。 unset python3 second_ros2_node.py提示如下 root@490925f19143:~/d2lros2/d2lros2/chapt2/basic# python3 second_ros2_node.py Traceback (most recent call last): File "/root/d2lros2/d2lros2/chapt2/basic/second_ros2_node.py", line 3, in import rclpy ModuleNotFoundError: No module named 'rclpy'请你记住这个报错信息ModuleNotFoundError: No module named 'xxx',这也是你未来学习过程中可能会经常会遇到的。 下次遇到时,你会想起小鱼这篇文章,然后对它轻蔑的一笑,接着找到这个库所在的目录,把它加到环境里。 5.总结本节小鱼带你学习了Python编写ROS2节点的方式,并带你认识了一个常见的错误ModuleNotFoundError: No module named 'xxx'。 ROS2前置教程汇总: 我因我们而存在,Ubuntu也有哲学意义 ROS2前置教程|在虚拟机中安装Ubuntu ROS2前置教程 | 玩转Ubuntu之常用指令 ROS2前置教程|玩转Ubuntu之编程工具 ROS2前置教程 | 玩转Ubuntu之常用软件 ROS2前置基础教程 | 小鱼教你用g++编译ROS2节点 ROS2前置基础教程 | 使用CMakeLists.txt编译ROS2节点 ROS2前置基础教程 | 小鱼教你用CMake依赖查找流程 ROS2进阶教程汇总: ROS2进阶教程| ROS2系统架构之操作系统打假 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |